package com.xayy.core.antlr4.model;

import com.xayy.core.antlr4.enums.RuleResultEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 规则执行结果
 *
 * @author dongxingli
 * createTime 2020/9/28
 * @version V1.0
 */
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ErrorResult {
    /**
     * 规则表达式
     */
    private String expression;
    /**
     * 规则执行状态码
     * {@link RuleResultEnum}
     */
    private int code;
    /**
     * 执行结果
     */
    private Double result;

    /**
     * 语法或执行过程中错误信息
     */
    private List<String> gramErrList;

    /**
     * 规则是否执行成功，成功时再使用result的执行结果
     *
     * @return
     */
    public boolean isSuccess() {
        return this.code == RuleResultEnum.SUCCESS.getCode();
    }
}
